package day01;
/*
此次编译出现如下问题：
1. 未在每次循环时初始化bol，导致i = 4开始判断模块失效

 */

import java.util.Scanner;

public class HelloWorldTest {
    //搜索并输出限定范围内的质数
    //并输出该范围内质数的个数
    public static void main(String[] args) {
        System.out.println("HelloWorld!");
        //手动输入并设定范围
        System.out.println("******************");
        System.out.println("请输入搜索范围最大值：");
        Scanner s = new Scanner(System.in);
        int k = s.nextInt();
        //调用质数搜索类
        //同时输出质数本身以及范围内质数个数
        ZhishuTest b = new ZhishuTest();
        b.zhishu(k);
    }
}

class ZhishuTest{
    public ZhishuTest(){

    }

    //质数判断，k为搜索范围1-k；
    public void zhishu(int k){
        System.out.println("//质数 计数//");
        int count = 0;
        int num = 0;
        boolean bol;
        //输出质数并计数
        for(int i = 1; i <= k; i++){
            //穷举数字并与除1与自身以外每个数相除来判断i是否为质数
            bol = false;
            for(int j = 2; j <= i-1; j ++){
                //如果判断出为非质数，则bol为true。
                if(i % j == 0){
                    bol = true;
                    break;
                }
            }
            if(!bol){//bol == false){
                System.out.print(i+" ");
                count++;
                num++;
                if(num < 10){
                    System.out.print(" ");
                }
                if(num%10 == 0){
                    System.out.println();
                }
            }
        }
        System.out.println("完成！");
        System.out.println("****************************");
        System.out.println("1 ~ " + k + "范围内的质数数量为：" + count);
        System.out.println("****************************");
    }
    }

